/**********************************************************************************************************
 *@fileName: libc_assert.c
 *@platform: stm32l4xx + mdk5.26.2.0
 *@version:  v1.0.0
 *@describe: c assert library
 *@note:
**********************************************************************************************************
 version          date          Author          modification                                  
----------------------------------------------------------------------------------------------------------
  v1.0.0         190606          Etcfly        Create  file
**********************************************************************************************************/
#include "libc_assert.h"



#if 0

#define DEBUG(X)      	\
	DEBUG_OUTPUT(X, "this color is %d\r\n", X)
	
void test_color_8bit(void)
{
  DEBUG(0);   DEBUG(1);   DEBUG(2);  DEBUG(3);   DEBUG(4);  DEBUG(5);  DEBUG(6);  DEBUG(7);  DEBUG(8);  DEBUG(9);  DEBUG(10);
  DEBUG(11);  DEBUG(12);  DEBUG(13);  DEBUG(14);  DEBUG(15);  DEBUG(16);  DEBUG(17);  DEBUG(18);  DEBUG(19);  
  
  DEBUG(20);   DEBUG(21);   DEBUG(22);  DEBUG(23);   DEBUG(24);  DEBUG(25);  DEBUG(26);  DEBUG(27);  DEBUG(28);  DEBUG(29);  DEBUG(30);
  DEBUG(31);  DEBUG(32);  DEBUG(33);  DEBUG(34);  DEBUG(35);  DEBUG(36);  DEBUG(37);  DEBUG(38);  DEBUG(39); 
  
  DEBUG(40);   DEBUG(41);   DEBUG(42);  DEBUG(43);   DEBUG(44);  DEBUG(45);  DEBUG(46);  DEBUG(47);  DEBUG(48);  DEBUG(49); 
  DEBUG(50);   DEBUG(51);   DEBUG(52);  DEBUG(53);   DEBUG(54);  DEBUG(55);  DEBUG(56);  DEBUG(57);  DEBUG(58);  DEBUG(59); 

  DEBUG(60);   DEBUG(61);   DEBUG(62);  DEBUG(63);   DEBUG(64);  DEBUG(65);  DEBUG(66);  DEBUG(67);  DEBUG(68);  DEBUG(69);  
  DEBUG(70);   DEBUG(71);   DEBUG(72);  DEBUG(73);   DEBUG(74);  DEBUG(75);  DEBUG(76);  DEBUG(77);  DEBUG(78);  DEBUG(79); 

  DEBUG(80);   DEBUG(81);   DEBUG(82);  DEBUG(83);   DEBUG(84);  DEBUG(85);  DEBUG(86);  DEBUG(87);  DEBUG(88);  DEBUG(89);  
  DEBUG(90);   DEBUG(91);   DEBUG(92);  DEBUG(93);   DEBUG(94);  DEBUG(95);  DEBUG(96);  DEBUG(97);  DEBUG(98);  DEBUG(99);  
  
  DEBUG(100);   DEBUG(101);   DEBUG(102);  DEBUG(103);   DEBUG(104);  DEBUG(105);  DEBUG(106);  DEBUG(107);  DEBUG(108);  DEBUG(109);  
  DEBUG(110);   DEBUG(111);   DEBUG(112);  DEBUG(113);   DEBUG(114);  DEBUG(115);  DEBUG(116);  DEBUG(117);  DEBUG(118);  DEBUG(119);  
  
  DEBUG(120);   DEBUG(121);   DEBUG(122);  DEBUG(123);   DEBUG(124);  DEBUG(125);  DEBUG(126);  DEBUG(127);  DEBUG(128);  DEBUG(129);  
  DEBUG(130);   DEBUG(131);   DEBUG(132);  DEBUG(133);   DEBUG(134);  DEBUG(135);  DEBUG(136);  DEBUG(137);  DEBUG(138);  DEBUG(139);  
  
  DEBUG(140);   DEBUG(141);   DEBUG(142);  DEBUG(143);   DEBUG(144);  DEBUG(145);  DEBUG(146);  DEBUG(147);  DEBUG(148);  DEBUG(149);  
  DEBUG(150);   DEBUG(151);   DEBUG(152);  DEBUG(153);   DEBUG(154);  DEBUG(155);  DEBUG(156);  DEBUG(157);  DEBUG(158);  DEBUG(159);  
  
  DEBUG(160);   DEBUG(161);   DEBUG(162);  DEBUG(163);   DEBUG(164);  DEBUG(165);  DEBUG(166);  DEBUG(167);  DEBUG(168);  DEBUG(169);  
  DEBUG(170);   DEBUG(171);   DEBUG(172);  DEBUG(173);   DEBUG(174);  DEBUG(175);  DEBUG(176);  DEBUG(177);  DEBUG(178);  DEBUG(179);  
  
  DEBUG(180);   DEBUG(181);   DEBUG(182);  DEBUG(183);   DEBUG(184);  DEBUG(185);  DEBUG(186);  DEBUG(187);  DEBUG(188);  DEBUG(189);  
  DEBUG(190);   DEBUG(191);   DEBUG(192);  DEBUG(193);   DEBUG(194);  DEBUG(195);  DEBUG(196);  DEBUG(197);  DEBUG(198);  DEBUG(199);  
  
  DEBUG(200);   DEBUG(201);   DEBUG(202);  DEBUG(203);   DEBUG(204);  DEBUG(205);  DEBUG(206);  DEBUG(207);  DEBUG(208);  DEBUG(209);  
  DEBUG(210);   DEBUG(211);   DEBUG(212);  DEBUG(213);   DEBUG(214);  DEBUG(215);  DEBUG(216);  DEBUG(217);  DEBUG(218);  DEBUG(219);  
  
  DEBUG(220);   DEBUG(221);   DEBUG(222);  DEBUG(223);   DEBUG(224);  DEBUG(225);  DEBUG(226);  DEBUG(227);  DEBUG(228);  DEBUG(229);  
  DEBUG(230);   DEBUG(231);   DEBUG(232);  DEBUG(233);   DEBUG(234);  DEBUG(235);  DEBUG(236);  DEBUG(237);  DEBUG(238);  DEBUG(239);  
  DEBUG(240);   DEBUG(241);   DEBUG(242);  DEBUG(243);   DEBUG(244);  DEBUG(245);  DEBUG(246);  DEBUG(247);  DEBUG(248);  DEBUG(249);  
  DEBUG(250);   DEBUG(251);   DEBUG(252);  DEBUG(253);   DEBUG(254);  DEBUG(255); 
}
#endif


void libc_result_output(int result)
{
	if (result == 0) 
	{
		INFO_RESULT_OUTPUT("[OK]\r\n");
	} 
	else if (result == -1) 
	{
		INFO_RESULT_OUTPUT("[Fail]\r\n");
	}
}

void libc_assertCallback(unsigned char flag, void *pfunc(void *p_arg))
{
	if (!flag) {
		INFO_OUTPUT("assert callback function %p\r\n", pfunc);
		pfunc((void *)0);
	}
}

void libc_msg_output(const char *str, int value)
{
	if (str != SYS_NULL)
	{
		INFO_OUTPUT("%s ....... ", str);
	}
	
	if (value == 0 || value == -1)
	{
		libc_result_output(value);
		return ; 
	}	
}
